package com.school.system;

public class TestSystem {
    public static void main(String[] args) {
        // -------------------------- 步骤1：创建教师对象 --------------------------
        Teacher teacher1 = new Teacher("T001", "张三", "男"); // 教师1：张三（授Java）
        Teacher teacher2 = new Teacher("T002", "李四", "女"); // 教师2：李四（授Python）

        // -------------------------- 步骤2：创建课程对象（关联教师） --------------------------
        Course course1 = new Course("C001", "Java程序设计", "教学楼A101", "周一3-4节", 3, teacher1);
        Course course2 = new Course("C002", "Python数据分析", "教学楼B202", "周三5-6节", 2, teacher2);

        // -------------------------- 步骤3：教师开课 --------------------------
        teacher1.openCourse(course1);
        teacher2.openCourse(course2);

        // -------------------------- 步骤4：创建学生对象 --------------------------
        Student student1 = new Student("S001", "小明", "男"); // 学生1：小明
        Student student2 = new Student("S002", "小红", "女"); // 学生2：小红

        // -------------------------- 步骤5：学生选课 --------------------------
        student1.selectCourse(course1); // 小明选Java
        student2.selectCourse(course2); // 小红选Python
        student1.selectCourse(course2); // 小明重复选课（预期提示失败）

        // -------------------------- 步骤6：打印选课课表 --------------------------
        student1.printSchedule(); // 打印小明课表（已选Java）
        student2.printSchedule(); // 打印小红课表（已选Python）

        // -------------------------- 步骤7：学生退课 --------------------------
        student1.dropCourse(); // 小明退选Java
        student2.dropCourse(); // 小红退选Python
        student1.dropCourse(); // 小明重复退课（预期提示失败）

        // -------------------------- 步骤8：打印退课后课表 --------------------------
        student1.printSchedule(); // 打印小明课表（未选课）
        student2.printSchedule(); // 打印小红课表（未选课）
    }
}